
# 递归函数（计算3的阶乘）
# def f(n):
#     if n <= 1:
#         return 1
#     else:
#         return n*f(n-1)  # 100*f(99)   100*99*98*97.....*2*1
#
#
# num = int(input('请输入一个正整数：'))  # 输入3
# s = f(num)
# print(num, '的阶乘是：', s)  # 3*2*1

# 递归函数计算1~100的相加之和
def sum(n):
    if n == 1:
        return 1
    else:
        return n+sum(n-1)


print('1~100相加的和为', sum(100))


# 计算斐波那契数列 F(0)=0,F(1)=1,F(n)=F(n-1)+(n-2)(n>=2)的第n项
def fibo(n):
    if n <= 2:
        return 1
    else:
        return fibo(n - 1) + fibo(n - 2)


print('斐波那契数列的第{}项为{}'.format(10, fibo(10)))


# 匿名函数
# <函数>=lambda <参数列表>：<表达式>
# 使用匿名函数实现a+b+c
sum = lambda a, b, c: a+b+c
print(sum(1, 2,3))

# 编写lambda函数，参数为正方形的边长m.输出正方形的面积
fun = lambda m: m**2
print(fun(5))